# coding:utf-8
"""
    @author : 计祝兵
    @date : 2024/5/31 10:17
    @file : update_pic.py
    @desc : 修改图片
            小慕从网上下载了很多图片，但是图片的名称太长了，帮小慕修改一下吧，
            修改后的名称以imooc_开头，如下图所示

"""
import glob
import shutil
import logging
from log.log_config import set_log_config

set_log_config(logging.INFO)


def update_pic_name(path):
    # 获取path路径下的所有文件
    results = glob.glob(path)

    # 循环遍历这些文件
    for index, data in enumerate(results):
        # 如果该文件是个文件夹的话，就直接忽略
        if glob.os.path.isdir(data):
            # 获取文件夹的路径，并递归调用
            _path = glob.os.path.join(glob.os.getcwd(), "*")
            update_pic_name(_path)
        else:
            # 是文件的话，还要看看文件的后缀
            # 该函数的分割并不智能，它仅仅是以 "PATH" 中最后一个 '/' 作为分隔符，
            # 分隔后，将索引为0的视为目录（路径），将索引为1的视为文件名
            path_list = glob.os.path.split(data)
            name = str(path_list[-1])

            logging.info("第[{}]个文件处理".format(index))

            if not name.lower().endswith(".jpg"):
                logging.warn("{}-该文件不是一个图片,废弃".format(data))
                continue
            else:
                logging.info("{}-该文件是图片,将进行重命名".format(data))
                suffix = str(index) + ".jpg"
                new_name = '%s_%s' % ('imooc_', suffix)  # imooc_name.txt
                new_data = glob.os.path.join(path_list[0], new_name)
                logging.info("我准备开始重命名文件了哈,原文件名称:[{}],新文件名称:[{}]".format(data, new_data))
                shutil.move(data, new_data)


if __name__ == "__main__":
    update_pic_name(glob.os.path.join(glob.os.getcwd(), "*"))
